// 创建用户相关的Vuex模块
export default {
	// 开启命名空间
	namespaced:true,
	// state数据
	state:() => ({
		// 收货地址
		// addressInfo:{},
		addressInfo:JSON.parse(uni.getStorageSync('addressInfo') || '{}'),
		token:'',
		// 用户的基本信息
		userinfo:JSON.parse(uni.getStorageSync('userinfo') || '{}'),
		// 登录成功后保存token字符串
		token:uni.getStorageSync('token') || '',
		// 重定向的object对象 { openType,from }
		redirectInfo:null
	}),
	// mutations方法
	mutations:{
		// 更新收货地址
		updateAddress(state,addressInfo){
			state.addressInfo = addressInfo
			this.commit('m_user/saveAddressToStorage')
		},
		saveAddressToStorage(state){
			uni.setStorageSync('addressInfo',JSON.stringify(state.addressInfo))
		},
		// 更新用户信息
		updateUserInfo(state,userinfo){
			state.userinfo = userinfo
			this.commit('m_user/saveUserInfoToStorage')
		},
		saveUserInfoToStorage(state){
			uni.setStorageSync('userinfo',JSON.stringify(state.userinfo))
		},
		// 更新token值
		updateToken(state,token){
			state.token = token
			this.commit('m_user/saveTokenToStorage')
		},
		saveTokenToStorage(state){
			uni.setStorageSync('token',state.token)
		},
		// 更新重定向
		updateRedirectInfo(state,info){
			state.redirectInfo = info
		}
	},
	// 数据包装器
	getters:{
		// 抽离my-address的addstr出来作为公共组件
		addstr(state){
			if(!state.addressInfo.provinceName) return ''
			return state.addressInfo.provinceName + state.addressInfo.cityName + state.addressInfo.countyName + state.addressInfo.detailInfo
		}
	},
}